import Vue from "vue"
import Vuex from "vuex"

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    num: 0
  },
  actions: {
    // 由于加和减两种方法都没有什么逻辑需要处理，所以可以直接跳过actions环节，直接mutations修改数据
    // jia(context, n) {
    //   context.commit('JIA', n)
    // },
    // jian(context, n) {
    //   context.commit('JIAN', n)
    // },
    addOdd(context, n) {
      if (context.state.num % 2 != 0) {
        context.commit('ADDODD', n)
      }
    },
    addWait(context, n) {
      setTimeout(() => {
        context.commit('ADDWAIT', n)
      }, 500)
    }
  },
  mutations: {
    JIA(state, n) {
      state.num += n
    },
    JIAN(state, n) {
      state.num -= n
    },
    ADDODD(state, n) {
      state.num += n
    },
    ADDWAIT(state, n) {
      state.num += n
    }
  },
  getters: {
    bigNum(state) {
      return state.num * 10
    }
  }
})

export default store